Many different compression algorithms have been developed in the past for digitally encoding video and audio information to minimize the bandwidth required to transmit this information for a given picture quality. Several multimedia specification committees have established and proposed standards for encoding/compressing and decoding/decompressing audio and video information. The most widely accepted international standards have been proposed by the Moving Pictures Expert Groups (MPEG), and are generally referred to as the MPEG-1, MPEG-2 and MPEG-4 standards. These MPEG standards for moving picture compression are used in a variety of current video playback products, including digital versatile (or video) disk (DVD) players, multimedia PCs having DVD playback capability, and satellite broadcast digital video.
In general, in accordance with the MPEG standards, the audio and video data comprising a multimedia data stream are encoded/compressed in an intelligent manner using a compression technique generally know as “motion coding”. More particularly, rather than transmitting each video frame in its entirety, MPEG uses motion estimation for only those parts of sequential pictures that vary due to motion, where possible. In general, the picture elements or “pixels” of a picture are specified relative to those of a previously transmitted reference frame using motion vectors that specify the location of a 16-by-16 array of pixels or “macroblock” within the current frame relative to its original location within the reference frame. Three main types of video frames or pictures are specified by MPEG, namely, I-type, P-type, and B-type pictures.
An I frame is coded using only the information contained in that frame, and hence, is referred to an “intra-coded”.
A P frame is coded/compressed using motion compensated prediction (or ‘motion estimation”) based upon information from a past reference frame (either I-type or P-type).
A B frame is coded/compressed using motion compensated prediction (or “motion estimation”) based upon information from either a past and/or a future reference frame (either I-type or P-type), or both. B frame pictures are usually inserted between I-type or P-type pictures, or combinations of either.
FIG. 1, which is consistent with the prior art, illustrates a frame having macroblock locations 00 through NN identified. In one embodiment, the frame and macroblocks in FIG. 1 are consistent with a MPEG standard, and though the number of macroblocks varies, each macroblock represents a 16×16 array of pixels. During MPEG compression, a motion vector set is associated to this 16×16 array of pixels . . . In order to store raw data for a single macroblock, it will be appreciated that three color components, RGB or YUV data, will need to be saved. Therefore, the amount of space needed to store an un-compressed macroblock picture would require three 16×16 sample arrays. However, as allowed in the MPEG standards, compressed data for a macroblock can be stored in a 4/2/0 format. As illustrated in FIG. 1, 4/2/0 format represents the picture information within a macroblock with four blocks of luminance data (Y) and two blocks of chrominance data (one U, and one V). The term block is used consistent with the MPEG standard to represent an 8×8 array of pixel information. In effect, using a 4/2/0 format compresses a macroblock of raw video data from twelve blocks of data to six blocks of data.
FIG. 1 further illustrates how each frame relates to a group of pictures of a video stream. FIG. 1 illustrates two groups of pictures. Each group of pictures receives frames in a specific order by frame type. Specifically, each group of pictures illustrated receives frames of specific types in the stated order: I frame, P frame, B frame, P frame, P frame, P frame, and, B frame. While frames are received in the order indicated, they are not necessarily displayed in that order. Instead, the frames are displayed in the order indicated by the numeric suffix of each frame's type. Therefore, the sequential display order of the frames, once decoded, would be: I1, B2, P3, P4, P5, B6, P7. It will be appreciated, that the order of reception and order of display is consistent with the previous description of the coding of P frames and B frames. For example, in order for frame B2 to be decoded, the information associated with frame B2, prior frame, I1 and subsequent frame, P3, must be received first.
The MPEG protocol supports transmission of audio stream data, video stream data, and other non-audio/video stream data. It is often desirable for content, such as the video content to be blocked based on access control techniques to prevent unauthorized access. This information is generally sent using the non-audio/video packet capabilities of the MPEG protocol. However, such transmission of access control information lends itself to be bypassed by merely separating the video stream data from the non-video stream data. Therefore, it would be useful to provide access control information and other information in a manner that didn't lend itself to being separated from the video stream.
Therefore it can be seen that a system and method for transmitting non-video information in a block based multimedia protocol would be useful.